Skip to content

日期时间模块

C++的 ctime 库包含了一系列用于日期和时间的函数。这个库是基于 C 语言库<time.h>的。下面是一些 ctime 库中函数的示例:

cpp
#include <iostream>
#include <ctime>

int main() {
    // 获取当前系统时间
    std::time_t now = std::time(0);

    // 将时间转换为本地时间
    std::tm* local_time = std::localtime(&now);

    // 输出年、月、日、时、分、秒
    std::cout << "年: " << 1900 + local_time->tm_year << std::endl;
    std::cout << "月: " << 1 + local_time->tm_mon << std::endl;
    std::cout << "日: " << local_time->tm_mday << std::endl;
    std::cout << "时: " << local_time->tm_hour << std::endl;
    std::cout << "分: " << local_time->tm_min << std::endl;
    std::cout << "秒: " << local_time->tm_sec << std::endl;

    // 将时间转换为UTC时间
    std::tm* utc_time = std::gmtime(&now);

    // 输出UTC时区的年、月、日、时、分、秒
    std::cout << "UTC年: " << 1900 + utc_time->tm_year << std::endl;
    std::cout << "UTC月: " << 1 + utc_time->tm_mon << std::endl;
    std::cout << "UTC日: " << utc_time->tm_mday << std::endl;
    std::cout << "UTC时: " << utc_time->tm_hour << std::endl;
    std::cout << "UTC分: " << utc_time->tm_min << std::endl;
    std::cout << "UTC秒: " << utc_time->tm_sec << std::endl;

    // 使用strftime函数格式化时间
    char buffer[80];
    std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", local_time);
    std::cout << "格式化后的本地时间: " << buffer << std::endl;

    std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", utc_time);
    std::cout << "格式化后的UTC时间: " << buffer << std::endl;

    return 0;
}

这个示例程序首先获取了当前系统时间,并将其转换为本地时间和 UTC 时间。然后,它输出了年、月、日、时、分、秒。最后,它使用 strftime 函数将时间格式化为字符串,并输出格式化后的时间。